#include <iostream>
using std::cout;
using std::endl;

//仅声明，不去定义
//声明和定义是分开的，然后函数调用时，位于定义的上方
//如果设置了默认值，那么一定需要设置成声明中
//否则将会无法使用
//还需要注意一点的是：声明和定义如果分开的话
    //那么不用再声明、定义中都去设置默认值，只需要设置一处即可
void func(int x = 0, int y = 0);

void test(){
    func(1, 2);
    func();
}

void func(int x, int y){
    cout << x << "," << y << endl;
}


//设置默认参数的顺序
void func2(int a, int b = 0, int c = 0, int d = 0){

}

//为什么默认参数需要从右往左进行配置呢？？？
//参数匹配是从左往右进行匹配的
void test2(){
    func2(1, 2, 3, 4);
    func2(1, 3, 4);
    func2(1, 5);
}

int main()
{
    test();
    return 0;
}

